# tests and condition when to skip the test
validate_tests = [
  ['validate/padmonitor'],
  ['validate/monitoring'],
  ['validate/reporting'],
  ['validate/overrides'],
  ['validate/scenario'],
  ['validate/utilities'],
  ['validate/expression_parser'],
]

test_defines = [
  '-UG_DISABLE_ASSERT',
  '-UG_DISABLE_CAST_CHECKS',
  '-DGST_CHECK_TEST_ENVIRONMENT_BEACON="GST_STATE_IGNORE_ELEMENTS"',
  '-DTESTFILE="' + meson.current_source_dir() + '/meson.build"',
  '-DGST_USE_UNSTABLE_API',
]

foreach t : validate_tests
  fname = '@0@.c'.format(t.get(0))
  test_name = t.get(0).underscorify()
  if t.length() == 2
    skip_test = t.get(1)
  else
    skip_test = false
  endif

  if not skip_test
    env = environment()
    env.set('GST_STATE_IGNORE_ELEMENTS', '')
    env.set('GST_PLUGIN_SYSTEM_PATH_1_0', '')
    env.set('GST_PLUGIN_PATH_1_0', [meson.build_root()] + pluginsdirs)
    env.set('GST_REGISTRY', '@0@/@1@.registry'.format(meson.current_build_dir(), test_name))
    env.set('GST_PLUGIN_SCANNER_1_0', gst_plugin_scanner_path)

    exe = executable(test_name, fname,
        'validate/test-utils.c',
        c_args : gst_c_args + test_defines,
        include_directories : [inc_dirs],
        dependencies : [validate_dep, gst_check_dep],
        link_with: gstvalidate
    )
    env.set('GST_REGISTRY',
            '@0@/@1@.registry'.format(meson.current_build_dir(), test_name))
    test(test_name, exe, env: env)
  endif
endforeach

